#include<iostream>
#include<vector>
#include<unordered_map>
#include<unordered_set>
using namespace std;

//191.位1的个数
int hammingWeight(int n){
    int count = 0;
    while(n){
        //如果最低为是1，该数就是奇数，模上2为1，计数器加一
        //如果最低为是0，该数就是偶数，模上2为0，计数器不变
        count += n % 2;

        //右移一位，循环直到为0
        n >>= 1;
    }

    return count;
}

//338.比特位计数
vector<int> countBits(int n){
    vector<int> ans(n + 1);

    for(int i=1;i<=n;i++){
        //如果是奇数，该数的二进制就是上一个数的二进制进一位，1的个数加一
        if(i%2){
            ans[i] = ans[i - 1] + 1;
        }
        //如果是偶数，相当于上一个小的偶数乘二，左移一位，最低为加上一个0，1的个数不变
        else{
            ans[i] = ans[i / 2];
        }
    }

    return ans;
}

//461.汉明距离
int hammingDistance(int x,int y){
    int count = 0;

    while(x||y){
        //两个数最低位异或，相同为0，计数器不变；相异为1，计数器加一
        count += (x % 2) ^ (y % 2);

        //两个数右移一位，循环直到两个数都为0
        x >>= 1;
        y >>= 1;
    }

    return count;
}

//136.只出现一次的数字
int singleNumber(vector<int>& nums){
    int ret = nums[0];

    for (int i = 1; i < nums.size();i++){
        ret ^= nums[i];
    }

    return ret;
}



int main(){
    int ans = getSum(13,28);
    cout << ans;
    return 0;
}